package com.ruoyi.system.mapper;

import java.util.List;

import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.system.domain.SysArea;
import org.apache.ibatis.annotations.Param;

/**
 * 地区Mapper接口
 * 
 * @author ruoyi
 * @date 2024-08-07
 */
public interface SysAreaMapper 
{
    /**
     * 查询地区
     * 
     * @param areaId 地区主键
     * @return 地区
     */
    public SysArea selectSysAreaByAreaId(Long areaId);

    /**
     * 查询地区列表
     * 
     * @param sysArea 地区
     * @return 地区集合
     */
    public List<SysArea> selectSysAreaList(SysArea sysArea);
    /**
     * 根据ID查询所有子部门
     *
     * @param areaId 部门ID
     * @return 部门列表
     */
    public List<SysArea> selectChildrenAreaById(Long areaId);
    /**
     * 新增地区
     * 
     * @param sysArea 地区
     * @return 结果
     */
    public int insertSysArea(SysArea sysArea);

    /**
     * 修改地区
     * 
     * @param sysArea 地区
     * @return 结果
     */
    public int updateSysArea(SysArea sysArea);

    /**
     * 修改子元素关系
     *
     * @param areas 子元素
     * @return 结果
     */
    public int updateAreaChildren(@Param("areas") List<SysArea> areas);

    /**
     * 删除地区
     * 
     * @param areaId 地区主键
     * @return 结果
     */
    public int deleteSysAreaByAreaId(Long areaId);

    /**
     * 是否有子区域
     * @param areaId
     * @return
     */
    public int hasChildByAreaId(Long areaId);
    /**
     * 批量删除地区
     * 
     * @param areaIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSysAreaByAreaIds(Long[] areaIds);
}
